package com.bsu.ascm.controls;

import java.util.ArrayList;
import java.util.HashMap;

import android.content.Context;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.LinearLayout;
import android.widget.SimpleAdapter;

import com.bsu.ascm.R;

public class GridViewTable extends LinearLayout {
	protected GridView gvTable,gvPage;									//数据表GridView,分页GridView
	protected SimpleAdapter saTable,saPageID;							//数据表数据代理，分页数据代理
	protected ArrayList<HashMap<String,String>> srcTable,srcPageID;		//数据源
	
	protected int tableRowCount = 10;									//每页Row数量
	protected int tableColCount = 0;									//每页col数量
	protected OnTableClickListener clickListener;						//整个分页控件被点击时的回调函数
	protected OnPageSwitchListener switchListener;						//分页切换的回调函数
	
	public GridViewTable(Context context) {
		super(context);
		this.setOrientation(VERTICAL);									//设置垂直方向
		
		//设置数据表格
		gvTable = new GridView(context);
		addView(gvTable,new LinearLayout.LayoutParams(
				LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));	//设置宽长样式
		gvTable.setNumColumns(4);
		//设置表格的数据源
		srcTable = new ArrayList<HashMap<String,String>>();
		saTable = new SimpleAdapter(context,
					srcTable,											//数据来源
					R.layout.gridviewtableitem,							//item样式
					new String[] {"ItemText"},							//动态数组与Item对应的子项
					new int[] {R.id.gvt_ItemText});						
		//添加数据源并显示
		gvTable.setAdapter(saTable);
		gvTable.setOnItemClickListener(new OnItemClickListener(){
			@Override
			public void onItemClick(AdapterView<?> arg0,View arg1,int arg2,long arg3){
				
			}
		});
	}
	/**
	 * 为表格加载数据
	 * @param st	代入ArrayList<HashMap<String,String>>类型数据
	 */
	public void loadTable(){
		saTable.notifyDataSetChanged();
	}
	/**
	 * 为表格加载数据
	 * @param xml	代入XML格式数据直接显示
	 */
	protected void loadTable(String xml){
		
	}
	
	
	/**
	 * 清除所有数据
	 */
	public void gvRemoveAll()
	{
		srcTable.clear();
		saTable.notifyDataSetChanged();
	}
	//-------------------------------------------
	/**
	 * 表格被点击时的回调函数
	 */
	public void setTableOnClickListener(OnTableClickListener click){
		this.clickListener = click;
	}
	public interface OnTableClickListener{
		public void onTableClickListener(int x,int y);
	}
	//-------------------------------------------
	public interface OnPageSwitchListener{
		public void onPageSwitchListener(int pageID,int pageCount);
	}
	/**
	 * 获得表格行数
	 * @return	返回表格行数
	 */
	public int getTableRowCount() {
		return tableRowCount;
	}
	/**
	 * 设置表格行数
	 * @param tableRowCount	表格行数
	 */
	public void setTableRowCount(int tableRowCount) {
		this.tableRowCount = tableRowCount;
	}
	/**
	 * 获得表格列数
	 * @return	返回表格列数
	 */
	public int getTableColCount() {
		return tableColCount;
	}
	/**
	 * 设置表格列数
	 * @param tableColCount	表格列数
	 */
	public void setTableColCount(int tableColCount) {
		this.tableColCount = tableColCount;
	}
	public ArrayList<HashMap<String, String>> getSrcTable() {
		return srcTable;
	}
}
